Audio is commonly streamed over the Internet using synchronous streaming protocols such as Real Time Messaging Protocol (RTMP) or Real Time Streaming Protocol (RTSP). These streaming protocols work well in consistent and predictable network environments, but are less robust and reliable if the network is not reliable. For example, cellular networks are often unreliable and connection breakages occur frequently. Recovering from a connection breakage using these synchronous steaming protocols can be difficult and sometimes impossible. Moreover, even if you can recover, usually there is a loss of data, especially if the audio is being streamed from a live event.
It is also difficult, and sometimes impossible, to detect successful audio transfer to the broadcast server and/or to calculate latency between the streaming device and the broadcast server. Because of this, it is difficult and sometimes impossible to dynamically change the bit rate of the stream in cases network congestion.
In addition, these synchronous streaming protocols also do not scale well because once a connection is established between the streaming device and the broadcast server, that same connection needs to be maintained and there can be no subsequent load balancing or switching without breaking that connection.
There are techniques for streaming audio from a live event or performance, which typically do not use a handheld device to capture and stream the audio. Also, these techniques typically only support low quality audio and are susceptible to having packets dropped (they do not support contiguous audio delivery).